import axios from 'axios';
import { ElMessage } from 'element-plus';
import router from '@/router';

const instance = axios.create({
    baseURL: 'http://localhost:4001/api',
    timeout: 10000,
    withCredentials: true
});

// 请求拦截器
instance.interceptors.request.use(
    config => {
        const token = localStorage.getItem('token');
        console.log('发送请求时的token:', token);
        
        if (token) {
            // 修改token格式
            config.headers['Authorization'] = token;  // 直接使用token，不加Bearer前缀
        }
        
        // 打印完整请求信息
        console.log('请求配置:', {
            url: config.url,
            method: config.method,
            headers: config.headers,
            data: config.data
        });
        
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    response => {
        console.log('响应数据:', response.data);
        return response;
    },
    error => {
        console.error('请求错误:', error.response || error);
        
        if (error.response?.status === 401) {
            // 清除所有认证信息
            localStorage.clear();
            router.push('/login');
            ElMessage.error('请先登录或登录已过期');
        } else {
            ElMessage.error(error.response?.data?.message || '请求失败');
        }
        return Promise.reject(error);
    }
);

export default instance;  